﻿using System;

namespace Mitosoft.Definitions.ExtendedBaseValues
{
	/// <summary>
	/// Defines an extended property, being able to inform
	/// about the changed value using an event.
	/// </summary>
	/// <typeparam name="TO">Represents the property type.</typeparam>
	public interface IExtendedProperty<TO>
	{
		/// <summary>
		/// Should occur when <see cref="Value"/> changes.
		/// </summary>
		event EventHandler<TO> ValueChanged;

		/// <summary>
		/// Gets or sets the value
		/// </summary>
		TO Value
		{
			get; set;
		}
	}
}
